<?php

namespace app\admin\model\consult;

use app\admin\model\xlzxinfo\Xlzxinfo;
use think\Config;
use think\Log;
use think\Model;
use traits\model\SoftDelete;

class Order extends Model
{

    use SoftDelete;

    

    // 表名
    protected $name = 'consult_order';
    
    // 自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';

    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    protected $deleteTime = 'deletetime';

    // 追加属性
    protected $append = [
        'talk_time_text',
        'start_talk_time_text',
        'end_talk_time_text',
        'effective_time_text'
    ];


    public function getTalkTimeTextAttr($value, $data)
    {
        if(!empty($data['talk_time'])){
            $value = $value ? $value : (isset($data['talk_time']) ? $data['talk_time'] : '');
            return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
        }
    }

    public function getStartTalkTimeTextAttr($value, $data)
    {
        if(!empty($data['start_talk_time'])){
            $value = $value ? $value : (isset($data['start_talk_time']) ? $data['start_talk_time'] : '');
            return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
        }
    }

    public function getEndTalkTimeTextAttr($value, $data)
    {
        if(!empty($data['end_talk_time'])){
            $value = $value ? $value : (isset($data['end_talk_time']) ? $data['end_talk_time'] : '');
            return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
        }
    }

    public function getEffectiveTimeTextAttr($value, $data)
    {
        if(!empty($data['effective_time'])){
            $value = $value ? $value : (isset($data['effective_time']) ? $data['effective_time'] : '');
            return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
        }
    }



    public function user()
    {
        return $this->belongsTo('app\admin\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    public function xlzxinfo()
    {
        return $this->belongsTo('app\admin\model\xlzxinfo\Xlzxinfo', 'xlzxinfo_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    /**
     * 咨询分佣
     */
    public static function ConsultCommission($order_id)
    {
        $order = self::getById($order_id);
        if (!$order) {
            return false;
        }
        $user = \think\Db::name('user')->where('id', $order['user_id'])->where('status', 'normal')->find();
        if ($user) {
            //上下级推广佣金
            $parent_user = \think\Db::name('user')->where('id', $user['pid'])->where('status', 'normal')->find();
            if ($parent_user){
                //后期调整兑换码订单这里不支持分佣
                if($order['pay_type'] != 'code'){
                    //分佣比例
                    if ($parent_user['commission_rate']>0){
                        $commission_rate = $parent_user['commission_rate'];
                    }else{
                        $commission_rate = Config::get('site.commission_rate');
                    }
                    $commission_rate_parent = bcMath($commission_rate,100,'/');
                    $price = bcMath($order->price,$commission_rate_parent,'*');
                    $memo = '用户推广文字咨询分佣 比例'.$commission_rate.'% <br/>订单编号:'.$order_id;
                    Log::info('用户推广文字咨询分佣:'.$memo);
                    //给到余额
                    \app\common\model\User::money($price,$parent_user['id'],$memo,5,2);
                }
//                $parent_user->setInc('cumulative_gain',$price);
                // \think\Db::name('user')->where('id', $parent_user['id'])->setInc('cumulative_gain',$price);
                // return true;
            }
        }
        //后期调整兑换码订单这里不支持  咨询师   文字  佣金
        if($order['pay_type'] != 'code'){
            // 咨询师   文字  佣金
            $xlzxinfo = Xlzxinfo::where(['id'=>$order['xlzxinfo_id']])->find();
            //分佣比例
            // if ($parent_user && $parent_user['commission_rate']>0){
            //     $commission_rate = $parent_user['commission_rate'];
            // }else{
            $zxs_commission_rate = Config::get('site.xlzx_commission_rate');
            // }
            $commission_rate_percentage = bcMath($zxs_commission_rate,100,'/');
            $price2 = bcMath($order->price,$commission_rate_percentage,'*');
            $memo = '文字咨询老师分佣 比例'.$zxs_commission_rate.'% <br/>咨询订单号:'.$order_id.'<br/>订单编号:'.$order['order_sn'];
            \app\common\model\User::money($price2,$xlzxinfo['user_id'],$memo,5,1);

            //同时把订单改成已完成分佣
            \think\Db::name('consult_order')->where(['pay_status'=>'paid','id'=>$order_id])->update(['is_rebate'=>1]);
        }
        // \think\Db::name('user')->where('id', $xlzxinfo['user_id'])->setInc('cumulative_gain',$price2);
        // return false;
        return true;
    }

}
